package com.mdtx.utils;

/**
 * 数据库字段和类字段转换
 *
 * @author 猫啊
 * @create 2017-09-06 22:20
 **/
public class ConvertUtil {


    /**
     * 1.表名首字母转大写
     * 2.字段转去除下划线
     * 3.字段转驼峰式名称
     * 4.
     */


    public static String upperCase(String str){


        char[] ch = str.toCharArray();
        if (ch[0] >= 'a' && ch[0] <= 'z') {
            ch[0] = (char) (ch[0] - 32);
        }
        return new String(ch);
    }

    /**
     * 驼峰式代码转换
     * @param str
     * @param isInitial 首字母是否转大写
     * @return
     */
    public static String toCamelCasing(String str,boolean isInitial){
        if(StringUtil.isContains(str)){

            String[] array = StringUtil.splitStr(str);

            //从第二个数组开始首字母代写，主要用于区分生成的是类名还是字段名
            if(array.length>1){
                StringBuffer  temp= new StringBuffer();
                for (int i = 1; i < array.length; i++) {
                    temp.append(upperCase(array[i]));
                }

                temp.insert(0,array[0]);
                str =  temp.toString();
            }

        }

        if(isInitial){
            return upperCase(str);
        }

        return str;
    }

    public static void main(String[] args) {
        //System.out.println(upperCase("account_coustomer_flow"));
//        StringBuffer  a= new StringBuffer();
//        a.append("aaa").append("cc").append("dd");
//        a.insert(1,123);
//        System.out.println(a.toString());
        System.out.println(toCamelCasing("account_coustomer_flow",false));
    }
}
